Copyright(C) 1994 Terumasa KODAKA , Takeshi KONO
■PCMCIA Socket Service
Overview of PCMCIA
o Compatible with the PCMCIA Socket Service (INT 1Ah - Function 80-AFh) of IBM-PC/AT compatible machines.
o On the PC-9801P/NX/C/NS/A/NL/R and PC-9821Ne, the socket service provided by SSDRV.SYS is
fixed at adapter number 00h and socket number 01h.
u When SSDRV.SYS (NEC's PCMCIA Socket Service 2.00 Driver Rev 1.00) is installed, if the AH register range is
not within the range of 80-AFh, the program jumps to the routine that handled INT 1Ah before SSDRV.SYS,
but the flags (OF, SF, ZF, AF, PF, CF) are destroyed.
PCMCIA Socket Service 2.00 Driver Rev 1.01 does not destroy them.
In SSDRV.SYS (NEC's PCMCIA Socket Service 2.00 Driver Rev 1.00), all flags (OF, SF, ZF, AF, PF) except for the
CY flag, which indicates the success/failure of the function, are destroyed.
In PCMCIA Socket Service 2.00 Driver Rev 1.01, all flags except the CY flag do not change.
SSDRV.SYS also hooks INT 1Fh - Function CFh.
Table Return Code List
-------------+---------------+---------------------------------------
Return Code | Name | Meaning
-------------+---------------+---------------------------------------
AH=00h(CF=0) | SUCCESS | The request was successful
AH=01h(CF=1) | BAD_ADAPTER | The adapter number is invalid
AH=02h(CF=1) | BAD_ATTRIBUTE | The attribute information is invalid
AH=03h(CF=1) | BAD_BASE | The base address is invalid
AH=04h(CF=1) | BAD_EDC | The EDC generator number is invalid
AH=06h(CF=1) | BAD_IRQ | The IRQ level is invalid
AH=07h(CF=1) | BAD_OFFSET | The card address is invalid
AH=08h(CF=1) | BAD_PAGE | The page number is invalid
AH=09h(CF=1) | READ_FAILURE | Read request did not complete
AH=0Ah(CF=1) | BAD_SIZE | Size is invalid
AH=0Bh(CF=1) | BAD_SOCKET | Socket number is invalid
AH=0Dh(CF=1) | BAD_TYPE | Window or interface type is invalid
AH=0Eh(CF=1) | BAD_VCC | Vcc voltage index specified is invalid
AH=0Fh(CF=1) | BAD_VPP | Vpp1/Vpp2 voltage index specified is invalid
AH=11h(CF=1) | BAD_WINDOW | Window number is invalid
AH=12h(CF=1) | WRITE_FAILURE | Write request did not complete
AH=14h(CF=1) | NO_CARD | Card not inserted
AH=15h(CF=1) | BAD_FUNCTION | Socket service not supported
AH=16h(CF=1) | BAD_MODE | Specified processor mode not supported
AH=17h(CF=1) | BAD_SPEED | Specified speed not available
AH=18h(CF=1) | BUSY | Not accepted at this time
-------------+---------------+---------------------------------------
INT 1Ah - Function 80h
Classification PCMCIA Socket Service
Name GetAdapterCount
Target PC card slot equipped machine + SSDRV.SYS
Input AH=80h
Output ■When PCMCIA Socket Service is installed
AH=00h(CF=0)
AL=TotalAdapters(total number of adapters)
CX=5353h(Signature)
*When Signature=5353h('SS'), at least one socket service exists in the system.
■Undefined when PCMCIA Socket Service is not installed
Explanation o Used to check whether the socket service is available.
When PCMCIA Socket Service is installed, AL returns the total number of adapters supported by all socket services in the host system.
o It is recommended to call with CX ≠ 5353h ('SS') and check that Signature is returned as 'SS'.
Related
INT 1Ah - Function 81h, 82h
Classification PCMCIA Socket Service
Name Reserve
Target PC card slot equipped machine + SSDRV.SYS
Input AH=81h, 82h
Output AH=15h (CF=1): BAD_FUNCTION
Explanation o None
Related
INT 1Ah - Function 83h
Classification PCMCIA Socket Service
Name GetSSInfo
Target PC card slot equipped machine + SSDRV.SYS
Input AH=83h
AL=Adapter (adapter number)
Output AH (CF) = return code (see "Return Code List")
AL=0
BX=Compliance (BCD value of the socket service compliance level)
CH=NumAdapters (number of adapters supported by this socket service)
CL=FirstAdapters (first adapter number supported by this socket service)
Explanation o Gets the compliance level of the socket service for the specified adapter number. Also gets the number of adapters supported by the socket service.
Related
INT 1Ah - Function 84h
Classification PCMCIA Socket Service
Name InquireAdapter
Target PC card slot equipped machine + SSDRV.SYS
Input AH=84h
AL=Adapter (adapter number)
ES:DI=pBuffer (pointer to adapter function table and power entry table)
Output AH(CF)=return code (see "Return Code List")
BH=NumWindows (number of windows provided by adapter)
BL=NumSockets (number of sockets provided by adapter)
CX=NumEDCs (number of EDC generators provided by adapter)
Explanation o Obtains information about the functions of the specified adapter.
Related INT 1Ah - Function 85h
INT 1Ah - Function 86h
INT 1Ah - Function 85h
Classification PCMCIA Socket Service
Name GetAdapter
Target PC card slot equipped machine + SSDRV.SYS
Input AH=85h
AL=Adapter (adapter number)
Output AH(CF)=Return code (see "Return code list")
DH=AdapterState (adapter state)
bit 1: AS_MAINTAIN
1 = Adapter and socket state information is maintained when adapter is in low power consumption mode
0 = Adapter and socket state information is not maintained when adapter is in low power consumption mode
bit 0: AS_POWERDOWN
1 = Adapter is in low power consumption mode
0 = Power is requested and adapter is functional
DI=SCRouting
bit 7: IRQ_ENABLED
1 = Enable
0 = Disable
bit 6: IRQ_HIGH
1 = Active HIGH
0 = Active LOW
Bits 4-0: IRQ level
Description o Returns the current state of the specified adapter.
Related INT 1Ah - Function 84h
INT 1Ah - Function 86h
INT 1Ah - Function 86h
Classification PCMCIA Socket Service
Name SetAdapter
Target PC card slot equipped machine + SSDRV.SYS
Input AH=86h
AL=Adapter (adapter number)
DH=State (adapter state)
bit 1: AS_MAINTAIN
1 = Adapter and socket state information is maintained when adapter is in low power consumption mode
0 = Adapter and socket state information is not maintained when adapter is in low power consumption mode
bit 0: AS_POWERDOWN
1 = Adapter is in low power consumption mode
0 = Power is required and adapter is functional
DI=SCRouting (status change interrupt setting)
bit 7: IRQ_ENABLED
1 = Enable
0 = Disable
bit 6: IRQ_HIGH
1 = Active HIGH
0 = Active LOW
bit 4-0: IRQ level
Output AH(CF)=Return code (see "List of return codes")
Explanation o Makes settings for the specified adapter.
Related INT 1Ah - Function 84h
INT 1Ah - Function 85h
INT 1Ah - Function 87h
Classification PCMCIA Socket Service
Name InquireWindow
Target PC card slot equipped machine + SSDRV.SYS
Input AH=87h
AL=Adapter (adapter number)
BH=Window (window number on adapter)
ES:DI=pBuffer (pointer to window function table)
Output AH(CF)=return code (see "Return Code List")
BL=WndCaps
bit 7: WC_WAIT
1 = PC card WAIT signal can be used to generate wait
0 = PC card WAIT signal cannot be used to generate wait
bit 2: WC_IO
1 = PC card I/O port can be mapped to I/O space
0 = PC card I/O port cannot be mapped to I/O space
bit 1: WC_ATTRIBUTE
1 = Attribute memory can be mapped to memory space.
0 = Attribute memory cannot be mapped to memory space.
bit 0: WC_COMMON
1 = Common memory can be mapped to memory space.
0 = Common memory cannot be mapped to memory space.
CX = Sockets
bit 15: Socket 15
:
bit 0: Socket 0
ES:DI = pBuffer (pointer to window function table)
Explanation o Gets information about the functions of the specified window.
Related INT 1Ah - Function 88h
INT 1Ah - Function 89h
INT 1Ah - Function 88h
Classification PCMCIA Socket Service
Name GetWindow
Target PC card slot equipped machine + SSDRV.SYS
Input AH=88h
AL=Adapter (adapter number)
BH=Window (window number on adapter)
Output AH(CF)=Return code (see "Return code list")
BL=Socket (socket number to which the specified window is assigned)
CX=Size (I/O window is in 1 byte units, memory window is in 4K byte units)
DH=State (current state of window hardware)
bit 4: WS_CENABLE (when WS_IO and WS_EISA are set)
1 = Access to EISA common I/O space is enabled
0 = Access to EISA common I/O space is disabled
bit 3: WS_PAGED■For memory window
1 = Window is divided into multiple 16KB pages
0 = Window is composed of a single page
bit 3: WS_EISA■For I/O window
1 = Window is EISA I/O mapped
0 = Window is ISA I/O mapped
bit 2: WS_16BIT
1 = Window data bus width is 16 bits
0 = Window data bus width is 8 bits
bit 1: WS_ENABLED
1 = Window is enabled
0 = Window is disabled
bit 0: WS_IO
1 = Window is mapped in I/O space
0 = Window is mapped in memory space
DL=Speed
DI=Base (current base address of specified window)
(I/O window is in 1 byte units, memory window is in 4K byte units)
Explanation o Gets the setting information of the specified window.
Related INT 1Ah - Function 87h
INT 1Ah - Function 89h
INT 1Ah - Function 89h
Classification PCMCIA Socket Service
Name SetWindow
Target PC card slot equipped machine + SSDRV.SYS
Input AH=89h
AL=Adapter (adapter number)
BH=Window (window number on adapter)
BL=Socket (socket number on adapter)
CX=Size (I/O window is 1 byte unit, memory window is 4K byte unit)
DH=State (window hardware setting)
bit 4: WS_CENABLE (when WS_IO and WS_EISA are set)
1 = Access to EISA common I/O space is enabled
0 = Access to EISA common I/O space is disabled
bit 3: WS_PAGED (memory window)
1 = Window is divided into multiple 16KB pages
0 = Window is composed of a single page
bit 3: WS_EISA (I/O window)
1 = Window is EISA I/O mapped
0 = Window is ISA I/O mapped
bit 2: WS_16BIT
1 = Window data bus width is 16 bits
0 = Window data bus width is 8 bits
bit 1: WS_ENABLED
1 = Window is enabled
0 = Window is disabled
bit 0: WS_IO
1 = Window is mapped in I/O space
0 = Window is mapped in memory space
DL=Speed
DI=Base (I/O window is 1 byte unit, memory window is 4K byte unit)
Output AH(CF)=Return code (see "Return code list")
Explanation o Sets the specified window.
Related INT 1Ah - Function 87h
INT 1Ah - Function 88h
INT 1Ah - Function 8Ah
Classification PCMCIA Socket Service
Name GetPage
Target PC card slot equipped machine + SSDRV.SYS
Input AH=8Ah
AL=Adapter (adapter number)
BH=Window (window number on adapter)
BL=Page (page number in window)
Output AH(CF)=Return code (see "Return code list")
BL=Socket (socket number on adapter)
DL=State (state of specified page in window)
bit 2: PS_WP
1 = Write prohibited by hardware
0 = Write not prohibited by hardware
bit 1: PS_ENABLED
1 = Card is mapped to memory space or I/O space
0 = Page is disabled
bit 0: PS_ATTRIBUTE
1 = Attribute memory is mapped
0 = Common memory is mapped
DI=Offset (4KB unit)
* PC card offset mapped by this page
Explanation o Reads the configuration information for the specified page. Only valid for memory windows.
Related INT 1Ah - Function 8Bh
INT 1Ah - Function 8Ch
INT 1Ah - Function 8Bh
Classification PCMCIA Socket Service
Name SetPage
Target PC card slot equipped machine + SSDRV.SYS
Input AH=8Bh
AL=Adapter (adapter number)
BH=Window (window number on adapter)
BL=Page (page number in window)
DL=State (state of specified page in window)
bit 2: PS_WP
1 = Write prohibited by hardware
0 = Write not prohibited by hardware
bit 1: PS_ENABLED
1 = Card is mapped to memory space or I/O space
0 = Page is disabled
bit 0: PS_ATTRIBUTE
1 = Attribute memory is mapped
0 = Common memory is mapped
DI=Offset (4KB unit)
* Offset of PC card mapped by this page
Output AH(CF)=Return code (see "Return code list")
Explanation o Sets the specified page. Only valid for memory windows.
Related INT 1Ah - Function 8Ah
INT 1Ah - Function 8Ch
INT 1Ah - Function 8Ch
Classification PCMCIA Socket Service
Name InquireSocket
Target PC card slot equipped machine + SSDRV.SYS
Input AH=8Ch
AL=Adapter (adapter number)
BL=Socket (socket number on adapter)
ES:DI=pBuffer (pointer to socket function table)
Output AH(CF)=return code (see "Return Code List")
BH=SCIntMask
bit 7: SBM_CD PC card CD signal
bit 6: SBM_RDYBSY PC card RDY/BSY signal
bit 5: SBM_BVD2 PC card BVD2 signal
bit 4: SBM_BVD1 PC card BVD1 signal
bit 3: SBM_INSERT Signal generated when the system requests the insertion of a PC card
bit 2: SBM_EJECT Signal generated when the system requests the ejection of a PC card
bit 1: SBM_LOCKED Signal generated when the system locks the PC card
bit 0: SBM_WP PC card WP signal
DH=SCRptCaps (same as SCIntCaps)
DL=CtlInd
bit 7: SBM_XIP Indicator that XIP application is processing
bit 6: SBM_BUSY Indicator that PC card is being used/accessed
bit 5: SBM_BATT Indicator that shows the status of BVD1 and BVD2
bit 4: SBM_LOCK Function to control the card lock mechanism
bit 3: SBM_INSERT Motor control signal used when inserting a PC card with a motor
bit 2: SBM_EJECT Motor control signal used when ejecting a PC card with a motor
bit 1: SBM_LOCKED Signal generated when the system locks the PC card
bit 0: SBM_WP PC card WP signal
ES:DI=pBuffer(pointer to socket function table)
Output AH(CF)=return code (see "Return Code List")
Explanation o Gets information about the function of the specified socket.
Related INT 1Ah - Function 8Ah
INT 1Ah - Function 8Bh
INT 1Ah - Function 8Dh
Classification PCMCIA Socket Service
Name GetSocket
Target PC card slot equipped machine + SSDRV.SYS
Input AH=8Dh
AL=Adapter (adapter number)
BL=Socket (socket number on adapter)
Output AH(CF)=Return code (see "Return code list")
BH=SCIntMask (mask state for status change events that occurred in the socket)
bit 7: SBM_CD
bit 6: SBM_RDYBSY
bit 5: SBM_BVD2
bit 4: SBM_BVD1
bit 3: SBM_INSERT
bit 2: SBM_EJECT
bit 1: SBM_LOCKED
bit 0: SBM_WP
CH=Vcc voltage level
bit 7-4: Reserved
bit 3-0: Vcc voltage level
CL=Vpp voltage level
bit 7-4: Reserved
bit 3-0: Vpp voltage level
DH=State (same as SCIntMask)
DL=CtlInd
bit 7: SBM_XIP
bit 6: SBM_BUSY
bit 5: SBM_BATT
bit 4: SBM_LOCK
bit 3: SBM_INSERT
bit 2: SBM_EJECT
bit 1: SBM_LOCKED
bit 0: SBM_WP
DI bits 15-8=IFType
bit 9,8: IF_IO,IF_MEMORY
11b=Disabled
10b=I/O interface
01b=Memory interface
00b=Disabled
DI bits 7-0=IREQRouting
bit 7: IRQ_ENABLED
1=Enabled
0=Disabled
bit 6: IRQ_HIGH
1=Active HIGH
0=Active LOW
bit 4-0: IRQ Level
Explanation o Gets the status information of the specified socket.
u In SSDRV.SYS (PCMCIA Socket Service 2.00 Driver Rev 1.00,1.01), the IFType and IREQRouting set in the DI register are
the opposite of the JEIDA 4.1 specification (the upper byte is IREQRouting, the lower byte is IFType).
Related INT 1Ah - Function 8Eh
INT 1Ah - Function 8Fh
INT 1Ah - Function 8Eh
Classification PCMCIA Socket Service
Name SetSocket
Target PC card slot equipped machine + SSDRV.SYS
Input AH=8Eh
AL=Adapter (adapter number)
BL=Socket (socket number on adapter)
BH=SCIntMask (mask state for status change events that occur in the socket)
bit 7: SBM_CD
bit 6: SBM_RDYBSY
bit 5: SBM_BVD2
bit 4: SBM_BVD1
bit 3: SBM_INSERT
bit 2: SBM_EJECT
bit 1: SBM_LOCKED
bit 0: SBM_WP
CH=Vcc voltage level
bit 7-4: Reserved
bit 3-0: Vcc voltage level
CL=Vpp voltage level
bit 7-4: Reserved
bit 3-0: Vpp voltage level
DH=State (same as SCIntMask)
DL=CtlInd
bit 7: SBM_XIP
bit 6: SBM_BUSY
bit 5: SBM_BATT
bit 4: SBM_LOCK
bit 3: SBM_INSERT
bit 2: SBM_EJECT
bit 1: SBM_LOCKED
bit 0: SBM_WP
DI bits 15-8=IFType
bit 9,8: IF_IO,IF_MEMORY
11b=Disabled
10b=I/O interface
01b=Memory interface
00b=Disabled
DI bits 7-0=IREQRouting
bit 7: IRQ_ENABLED
1=Enabled
0=Disabled
bit 6: IRQ_HIGH
1=Active HIGH
0=Active LOW
bit 4-0: IRQ level
Output AH(CF)=Return code (see "Return code list")
Explanation o Sets the specified socket.
u In SSDRV.SYS (PCMCIA Socket Service 2.00 Driver Rev 1.00,1.01), the IFType and IREQRouting set in the DI register are the
opposite of the JEIDA 4.1 specification (higher byte is IREQRouting, lower byte is IFType).
Related INT 1Ah - Function 8Dh
INT 1Ah - Function 8Fh
INT 1Ah - Function 8Fh
Classification PCMCIA Socket Service
Name GetStatus
Target PC card slot equipped machine + SSDRV.SYS
Input AH=8Fh
AL=Adapter (adapter number)
BL=Socket (socket number on adapter)
Output AH(CF)=Return code (see "Return code list")
BH=CardState
bit 7: SBM_CD
bit 6: SBM_RDYBSY
bit 5: SBM_BVD2
bit 4: SBM_BVD1
bit 3: SBM_INSERT
bit 2: SBM_EJECT
bit 1: SBM_LOCKED
bit 0: SBM_WP
DH=SocketState (same as State in GetSocket)
DL=CtlInd (same as CtlInd in GetSocket)
bit 7: SBM_XIP
bit 6: SBM_BUSY
bit 5: SBM_BATT
bit 4: SBM_LOCK
bit 3: SBM_INSERT
bit 2: SBM_EJECT
bit 1: SBM_LOCKED
bit 0: SBM_WP
DI bits 15-8 = IFType
bit 9: IF_IO
bit 8: IF_MEMORY
DI bits 7-0 = IREQRouting
bit 7: IRQ_ENABLED
1 = Enable
0 = Disable
bit 6: IRQ_HIGH
1 = Active HIGH
0 = Active LOW
bit 4-0: IRQ level
Explanation o Gets the current status of the socket, card, indicator, etc.
u In SSDRV.SYS (PCMCIA Socket Service 2.00 Driver Rev 1.00, 1.01), the IFType and IREQRouting set in the
DI register are the opposite of the JEIDA 4.1 specification (the upper byte is IREQRouting, and the lower byte is IFType).
Related INT 1Ah - Function 8Dh
INT 1Ah - Function 8Eh
INT 1Ah - Function 90h
Classification PCMCIA Socket Service
Name ResetSocket
Target PC card slot equipped machine + SSDRV.SYS
Input AH=90h
AL=Adapter (adapter number)
BL=Socket (socket number on adapter)
Output AH(CF)=return code (see "Return Code List")
Explanation o Resets the PC card inserted in the specified socket.
Related
INT 1Ah - Function 91-94h
Classification PCMCIA Socket Service
Name Reserve
Target PC card slot equipped machine + SSDRV.SYS
Input AH=91-94h
Output AH=15h(CF=1): BAD_FUNCTION
Explanation o None
Related
INT 1Ah - Function 95-9Ch
Classification PCMCIA Socket Service
Name InquireEDC,GetEDC,SetEDC,StartEDC,PauseEDC,StopEDC,ReadEDC
Target PC card slot equipped machine + SSDRV.SYS
Input AH=95-9Ch
Output AH=15h(CF=1): BAD_FUNCTION
Explanation o No function. SSDRV.SYS does not support EDC related functions.
Related
INT 1Ah - Function 9Dh
Classification PCMCIA Socket Service
Name GetVendorInfo
Target PC card slot equipped machine + SSDRV.SYS
Input AH=9Dh
AL=Adapter (adapter number)
BL=Type
ES:DI=pBuffer
Output AH(CF)=Return code (see "Return code list")
ES:DI=pBuffer
DX=Release
Explanation o Gets the vendor information of the socket service.
Only 00h is defined for Type, and a character string indicating the vendor name is transferred to the address indicated by ES:DI.
Related
INT 1Ah - Function 9Eh
Classification PCMCIA Socket Service
Name AcknowledgeInterrupt
Target PC card slot equipped machine + SSDRV.SYS
Input AH=9Eh
AL=Adapter (adapter number)
Output AH(CF)=Return code (see "Return code list")
CX=Sockets
bit 15: Socket 15
:
bit 0: Socket 0
Explanation o Returns a bitmap indicating the socket where the status change was detected
Related
INT 1Ah - Function 9Fh
Classification PCMCIA Socket Service
Name GetSetPriorHandler
Target PC card slot equipped machine + SSDRV.SYS
Input AH=9Eh
AL=Adapter (adapter number)
BL=Mode (mode)
00h= Set
01h= Get
CX:DX= pHandler
Output AH(CF)=Return code (see "Return code list")
CX:DX= pHandler
Explanation o Sets the handler to replace the socket service.
INT 1Ah - Function A0h, A1h
Classification PCMCIA Socket Service
Name GetSetSSAddr, GetAccessOffsets
Target PC card slot equipped machine + SSDRV.SYS
Input AH=A0h, A1h
Output AH=15h(CF=1): BAD_FUNCTION
Explanation o No function. Not supported by SSDRV.SYS.
INT 1Ah - Function A2~ADh
Classification PCMCIA Socket Service
Name Reserve
Target PC card slot equipped machine + SSDRV.SYS
Input AH=A2~ADh
Output AH=15h(CF=1): BAD_FUNCTION
Explanation o None
Related
INT 1Ah - Function AEh
Classification PCMCIA Socket Service
Name VendorSpecific
Target PC card slot equipped machine + SSDRV.SYS
Input AH=AEh
Output AH=15h(CF=1): BAD_FUNCTION
Explanation o No function. Not supported by SSDRV.SYS.
Related
INT 1Ah - Function AFh
Classification PCMCIA Socket Service
Name CardService
Target PC card slot equipped machine + SSDRV.SYS
Input AH=AFh
Output AH=15h(CF=1): BAD_FUNCTION
Explanation o Card service driver is not provided for PC-9800.
Related